<?php
/////////////////////////////////////////////////////////////////////////////
// FleaPHP Framework
//
// Copyright (c) 2005 - 2008 QeeYuan China Inc. (http://www.qeeyuan.com)
//
// 许可协议，请查看源代码中附带的 LICENSE.txt 文件，
// 或者访问 http://www.fleaphp.org/ 获得详细信息。
/////////////////////////////////////////////////////////////////////////////

/**
 * 定义 Model_Articles 类
 *
 * @copyright Copyright (c) 2005 - 2008 QeeYuan China Inc. (http://www.qeeyuan.com)
 * @author linxiaobo
 * @package LITONG ADMIN
 * @subpackage ARTICLE
 * @version $Id: Articles.php 972 2008-12-22 14:56:54Z qeeyuan $
 */

/**
 * Model_Articles 封装了对商品信息的所有操作
 *
 * @package LITONG ADMIN
 * @subpackage ARTICLE
 * @author linxiaobo
 * @version 1.0
 */
class Model_Articles
{
    /**
     * 提供商品信息数据库访问服务的对象
     *
     * @var Table_Articles
     */
    var $_tbArticles;

    /**
     * 构造函数
     *
     * @return Model_Articles
     */
    function Model_Articles() {
        $this->_tbArticles =& FLEA::getSingleton('Table_Articles');
    }

    /**
     * 获取指定 ID 的产品信息
     *
     * @param int $articleId
     * @param boolean $withAssoc 指示是否获取产品的关联信息（分类及照片）
     *
     * @return array
     */
    function getArticle($articleId, $withAssoc = true) {
        $link =& $this->_tbArticles->getLink('classes');
        $link->enabled = $withAssoc;

        return $this->_tbArticles->find((int)$articleId);
    }

    /**
     * 保存产品信息
     *
     * @param array $article
     *
     * @return boolean
     */
    function saveArticle($article) {
        if (isset($article['article_id']) && (int)$article['article_id'] == 0) {
            unset($article['article_id']);
        }
        return $this->_tbArticles->save($article);
    }

    /**
     * 删除指定的文章信息
     *
     * @param int $articleId
     *
     * @return boolean
     */
    function removeArticle($articleId) {
    	
        $articleId = (int)$articleId;

        $article = $this->_tbArticles->find($articleId);

        if (!$article) {
            FLEA::loadClass('Exception_ArticleNotFound');
            __THROW(new Exception_ArticleNotFound($articleId));
            return false;
        }

        return $this->_tbArticles->removeByPkv($articleId,false);
    }


    /**
     * 返回 Table_Articles 对象
     *
     * @return Table_Articles
     */
    function & getTable() {
        return $this->_tbArticles;
    }
}
